#ifndef YCCOREMODEL_H
#define YCCOREMODEL_H

#include <QObject>
#include <QScopedPointer>

namespace yc {

class AttentionModel;
class LiveModel;
class PresenterModel;
class RecordModel;

class Model : public QObject
{
    Q_OBJECT
public:
    explicit Model(QObject* parent = nullptr);
    ~Model();

    PresenterModel* presenterModel() const { return presenter_model_; }
    AttentionModel* attentionModel() const { return attention_model_; }
    LiveModel* liveModel() const { return live_model_; }
    RecordModel* recordModel() const { return record_model_; }
    void clear();

private:
    PresenterModel* presenter_model_;
    AttentionModel* attention_model_;
    LiveModel* live_model_;
    RecordModel* record_model_;
};

} // namespace yc

#endif // YCCOREMODEL_H
